package 反射学习;

import java.io.InputStream;
import java.lang.reflect.Method;
import java.util.Properties;

@SuppressWarnings("all")
public class 案例 {
    public static void main(String[] args) throws Exception {
        /*加载配置文件*/
        Properties pro = new Properties();
        //使用的这个Properties类可以将 .properties后缀的文件加载进内存
        ClassLoader classLoader = 案例.class.getClassLoader();
        //获取目前执行的这个案例的类加载器
        InputStream is = classLoader.getResourceAsStream("pro.properties");
        pro.load(is);

        //加载进内存后就是获取方法和类
        String className = pro.getProperty("className");
        String methodName = pro.getProperty("methodName");

        //获取类对象,将该类加载进内存
        Class cls = Class.forName(className);
        //创建对象
        Object o = cls.newInstance();
        //获取方法对象
        Method method = cls.getMethod(methodName);
        //运行方法
        method.invoke(o, "shi");

    }
}
